package com.dataset.manager.service;

import org.springframework.stereotype.Service;

import java.io.IOException;
import java.nio.file.Path;

/**
 * 存储服务接口，定义文件存储相关操作
 */
public interface StorageService {
    
    /**
     * 初始化存储服务
     */
    void init();
    
    /**
     * 复制文件或目录
     * @param sourcePath 源路径
     * @param id 任务ID，用于创建子目录
     * @return 目标路径
     * @throws IOException 复制失败时抛出异常
     */
    String copyDataToTaskDirectory(String sourcePath, String id) throws IOException;
    
    /**
     * 根据存储类型获取存储服务实例
     * @param storageType 存储类型（local或s3）
     * @return 对应的存储服务实例
     */
    StorageService getStorageService(String storageType);
}
